package anjos.bean;

import anjos.modelo.Crianca;
import anjos.rn.CriancaRN;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

@ManagedBean
@ViewScoped
public class CriancaBean {

    private Crianca crianca;
    private CriancaRN criancaRN = new CriancaRN();
    private List<Crianca> criancas;
    private boolean renderLista;

    public String getTitulo() {
        iniciarBean();

        return "Cadastro - Crianças";
    }

    public void iniciarBean() {
        criancas = criancaRN.obterTodos();
        crianca = new Crianca();
        setRenderLista(true);
    }

    public void novo() {
        if (crianca == null) {
            crianca = criancaRN.novo();
        }
        setRenderLista(false);
    }

    public void voltar() {
        crianca = null;
        setRenderLista(true);
    }

    public void salvar() {
        if (criancaRN.salvar(crianca)) {
            BeanUtil.criarMensagemDeInformacao("Criança Salva", " A Criança: " + crianca.getNome() + " Foi salva na lista");
            return;
        }

        BeanUtil.criarMensagemDeErro("Erro ao tentar salvar a criançaa.", "");
    }

    public void excluir() {
        if (criancaRN.remover(crianca)) {
            BeanUtil.criarMensagemDeInformacao("Crianca Removida da Lista", "A Crianca: " + crianca.getNome() + " foi removida da lista");
            return;
        }
        BeanUtil.criarMensagemDeErro("A Crianca não pode ser excluida da Lista", "Erro ao excluir Criança");
    }

    public String renderedCriancaMenu() {
        if (new ResponsavelBean().getResponsaveis().isEmpty()) {
            return "/cadastro/responsavel/processo.xhtml";
        } else if (new EventoBean().getEventos().isEmpty()) {
            return "/cadastro/evento/formularioEvento.xhtml";
        } else {
            return "/cadastro/crianca/processo.xhtml";
        }
    }

//    ******************************* Gete Sets*********************************
    public CriancaBean() {
    }

    public Crianca getCrianca() {
        return crianca;
    }

    public void setCrianca(Crianca crianca) {
        this.crianca = crianca;
    }

    public CriancaRN getCriancaRN() {
        return criancaRN;
    }

    public void setCriancaRN(CriancaRN criancaRN) {
        this.criancaRN = criancaRN;
    }

    public List<Crianca> getCriancas() {
        criancas = criancaRN.obterTodos();
        return criancas;
    }

    public SelectItem[] getResponsaveis() {
        return criancaRN.getResponsaveis();
    }

    public SelectItem[] getEventos() {
        return criancaRN.getEventos();
    }

    public void setCriancas(List<Crianca> criancas) {
        this.criancas = criancas;
    }

    /**
     * @return the renderLista
     */
    public boolean isRenderLista() {
        return renderLista;
    }

    /**
     * @param renderLista the renderLista to set
     */
    public void setRenderLista(boolean renderLista) {
        this.renderLista = renderLista;
    }
}